home *** CD-ROM | disk | FTP | other *** search
- package hhapplet;
-
- import java.applet.Applet;
- import java.awt.Label;
- import java.io.IOException;
- import java.net.URL;
- import java.util.Vector;
- import sitemap.MyBufferedInputStream;
-
- public class FTSParser extends Thread {
- protected Applet m_applet;
- protected FTSPane m_spSearch;
- protected FTSSearcher m_ftsSearcher;
- protected Thread m_Thread;
- protected MyBufferedInputStream m_is;
- protected int m_nTotalBytesRead;
- protected int m_nOffset = 0;
- protected String m_strFileName;
- protected URL m_urlDocBase;
-
- public FTSSearcher getSearcher() {
- return this.m_ftsSearcher;
- }
-
- public void parse() {
- this.run();
- }
-
- public Thread parseInSeparateThread(String var1, URL var2) {
- this.m_strFileName = var1;
- this.m_urlDocBase = var2;
- ((Thread)this).setPriority(4);
- ((Thread)this).start();
- return this;
- }
-
- protected boolean advancePastQuoteInStream() {
- try {
- byte var1;
- do {
- var1 = (byte)this.m_is.read();
- ++this.m_nTotalBytesRead;
- } while(var1 != 10 && var1 != 34);
-
- if (var1 == 34) {
- return true;
- } else {
- return false;
- }
- } catch (IOException var2) {
- return false;
- }
- }
-
- protected boolean advancePastCommaInStream() {
- try {
- byte var1;
- do {
- var1 = (byte)this.m_is.read();
- ++this.m_nTotalBytesRead;
- } while(var1 != 10 && var1 != 44);
-
- if (var1 == 44) {
- return true;
- } else {
- return false;
- }
- } catch (IOException var2) {
- return false;
- }
- }
-
- public FTSParser(Applet var1) {
- this.m_applet = var1;
- this.m_ftsSearcher = new FTSSearcher(this.m_applet);
- this.m_spSearch = new FTSPane(this.m_applet, this.m_ftsSearcher);
- this.m_ftsSearcher.setPane(this.m_spSearch);
- }
-
- protected boolean advancePastEOLInStream() {
- try {
- byte var1;
- do {
- var1 = (byte)this.m_is.read();
- ++this.m_nTotalBytesRead;
- } while(var1 != 10);
-
- return true;
- } catch (IOException var2) {
- return false;
- }
- }
-
- protected String getStringFromStream() {
- String var1 = new String();
-
- try {
- byte var2 = (byte)this.m_is.read();
- ++this.m_nTotalBytesRead;
- if (var2 == 34) {
- var2 = (byte)this.m_is.read();
- ++this.m_nTotalBytesRead;
- }
-
- while(var2 != 34) {
- if (var2 < 0) {
- var1 = var1 + (char)(var2 + 256);
- } else {
- var1 = var1 + (char)var2;
- }
-
- var2 = (byte)this.m_is.read();
- ++this.m_nTotalBytesRead;
- }
-
- return var1;
- } catch (IOException var3) {
- return null;
- }
- }
-
- protected String getStopWordFromStream() {
- new String();
- String var1 = this.getStringFromStream();
- this.advancePastEOLInStream();
- return var1;
- }
-
- protected String getKeywordNameFromStream() {
- String var1 = this.getStringFromStream();
- this.advancePastCommaInStream();
- return var1;
- }
-
- protected String getTopicTitleFromStream() {
- new String();
- String var1 = this.getStringFromStream();
- this.advancePastCommaInStream();
- return var1;
- }
-
- protected String getTopicURLFromStream() {
- new String();
- String var1 = this.getStringFromStream();
- this.advancePastEOLInStream();
- return var1;
- }
-
- public void UpdateStreamStatus() {
- this.m_applet.showStatus("Reading Search Data [" + this.m_nTotalBytesRead + "]");
- }
-
- public void run() {
- this.m_spSearch.getEditBox().enable(false);
-
- try {
- this.m_is = new MyBufferedInputStream(URLFileHandler.makeURL(this.m_urlDocBase, this.m_strFileName, (String)null).openStream());
- } catch (Exception var10) {
- this.m_applet.add("Center", new Label("Can't open URL or file " + ((Throwable)var10).getMessage()));
- return;
- }
-
- this.m_nTotalBytesRead = 0;
- int var4 = this.getCountFromStream("TOPICS=");
- this.UpdateStreamStatus();
- this.m_ftsSearcher.setTopicCount(var4);
-
- for(int var1 = 0; var1 < var4; ++var1) {
- String var2 = this.getTopicTitleFromStream();
- String var3 = this.getTopicURLFromStream();
- this.m_ftsSearcher.setTopicData(var1, var2, var3);
- if (var1 % 200 == 0) {
- this.UpdateStreamStatus();
- }
- }
-
- int var7 = this.getCountFromStream("KEYWORDS=");
- this.UpdateStreamStatus();
- this.m_ftsSearcher.setKeywordCount(var7);
-
- for(int var11 = 0; var11 < var7; ++var11) {
- String var6 = this.getKeywordNameFromStream();
- if (var6 == null) {
- Object var8 = null;
- } else {
- String var13 = var6.toLowerCase();
- }
-
- int[] var5 = this.getKeywordLinksFromStream();
- this.m_ftsSearcher.setKeywordData(var11, var6, var5);
- if (var11 % 200 == 0) {
- this.UpdateStreamStatus();
- }
- }
-
- int var9 = this.getCountFromStream("STOPWORDS=");
- this.UpdateStreamStatus();
- this.m_ftsSearcher.setStopWordCount(var9);
-
- for(int var12 = 0; var12 < var9; ++var12) {
- String var14 = this.getStopWordFromStream();
- this.m_ftsSearcher.setStopWord(var12, var14);
- if (var12 % 200 == 0) {
- this.UpdateStreamStatus();
- }
- }
-
- if (this.m_spSearch != null && this.m_spSearch.getList() != null) {
- this.m_spSearch.getList().clear();
- }
-
- if (this.m_spSearch != null && this.m_spSearch.getforappleList() != null) {
- this.m_spSearch.getforappleList().clear();
- this.m_spSearch.paintComponents(this.m_spSearch.getGraphics());
- }
-
- this.m_spSearch.ShowList();
- this.m_applet.showStatus("Done");
- this.m_spSearch.getEditBox().enable(true);
- this.m_spSearch.getEditBox().requestFocus();
- }
-
- public FTSPane getFTS() {
- return this.m_spSearch;
- }
-
- protected Integer getIntegerFromStream() {
- String var1 = new String();
-
- try {
- byte var2 = (byte)this.m_is.read();
- ++this.m_nTotalBytesRead;
-
- while(var2 == 32) {
- var2 = (byte)this.m_is.read();
- ++this.m_nTotalBytesRead;
- }
-
- while(var2 >= 48 && var2 <= 57) {
- if (var2 < 0) {
- var1 = var1 + (char)(var2 + 256);
- } else {
- var1 = var1 + (char)var2;
- }
-
- var2 = (byte)this.m_is.read();
- ++this.m_nTotalBytesRead;
- }
-
- if (var2 == 10) {
- return null;
- } else {
- Object var3 = null;
-
- try {
- var6 = new Integer(var1);
- } catch (NumberFormatException var4) {
- var6 = null;
- System.out.println("Error at Byte #" + this.m_nTotalBytesRead + " in stream.");
- }
-
- return var6;
- }
- } catch (IOException var5) {
- return null;
- }
- }
-
- protected int getCountFromStream(String var1) {
- String var2 = new String();
- boolean var4 = false;
- int var5 = 0;
-
- try {
- byte var3 = (byte)this.m_is.read();
- ++this.m_nTotalBytesRead;
-
- while(!var4) {
- while(var3 != 91) {
- var3 = (byte)this.m_is.read();
- ++this.m_nTotalBytesRead;
- }
-
- var3 = (byte)this.m_is.read();
- ++this.m_nTotalBytesRead;
-
- while(var5 < var1.length() && var3 == var1.charAt(var5) && var3 != 93) {
- var3 = (byte)this.m_is.read();
- ++this.m_nTotalBytesRead;
- ++var5;
- }
-
- if (var5 == var1.length()) {
- var4 = true;
- } else {
- var5 = 0;
- }
- }
-
- while(var3 >= 48 && var3 <= 57) {
- if (var3 < 0) {
- var2 = var2 + (char)(var3 + 256);
- } else {
- var2 = var2 + (char)var3;
- }
-
- var3 = (byte)this.m_is.read();
- ++this.m_nTotalBytesRead;
- }
-
- if (var3 == 10) {
- return 0;
- } else {
- this.advancePastEOLInStream();
- return Integer.parseInt(var2);
- }
- } catch (IOException var6) {
- return 0;
- }
- }
-
- protected int[] getKeywordLinksFromStream() {
- Vector var1 = new Vector();
- Object var2 = null;
-
- do {
- var5 = this.getIntegerFromStream();
- if (var5 != null) {
- var1.addElement(var5);
- }
- } while(var5 != null);
-
- int[] var3 = new int[var1.size()];
-
- for(int var4 = 0; var4 < var3.length; ++var4) {
- var3[var4] = (Integer)var1.elementAt(var4);
- }
-
- return var3;
- }
- }
-